package com.realdtech.wechat.task;

import com.jfinal.config.*;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.template.Engine;
import com.realdtech.base.jfinal.plugin.oss.OSSPlugin;
import com.realdtech.wechat.task.model._MappingKit;


/**
 * 系统配置类
 *
 * @author kris
 */
public class JFinalConfig extends com.jfinal.config.JFinalConfig {
    /**
     * 在configRoute中进行赋值，ShiroPlugin中需要用到
     */
   // private Routes routes;
    public void loadProp(String pro,String dev){
        try{
            PropKit.use(pro);
        }catch (Exception e){
            PropKit.use(dev);
        }
    }
    /**
     * 配置系统常量
     */
    @Override
    public void configConstant(Constants me) {
        loadPropertyFile("cfg.txt");
        loadProp("javen_config_pro.txt","javen_config.txt");
        me.setBaseDownloadPath(getProperty("application.download_path"));
        me.setBaseUploadPath(getProperty("application.upload_path"));
        me.setDevMode(getPropertyToBoolean("application.dev_mode", true));

        //错误页面
        me.setError404View("404.html");
        me.setError500View("500.html");
    }

    /**
     * 配置系统路由
     */
    @Override
    public void configRoute(Routes me) {
        me.add(new FrontRoutes());//前前
        me.add(new AdminRoutes());//后台


    }

    /**
     * 配置模板引擎
     */
    @Override
    public void configEngine(Engine me) {

    }

    /**
     * 配置系统插件
     */
    @Override
    public void configPlugin(Plugins me) {
        // 配置C3p0数据库连接池插件
        DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("username"), PropKit.get("password").trim());
        me.add(druidPlugin);

        // 配置ActiveRecord插件
        ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
        // 所有映射在 MappingKit 中自动化搞定
        _MappingKit.mapping(arp);
        me.add(arp);
        /**
         * OSSPlugin
         */
        OSSPlugin realdUpload = new OSSPlugin("oss-reald-upload.txt");
        me.add(realdUpload);

    }
    public static DruidPlugin createDruidPlugin() {//跟自动生成配合
        return new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("username"), PropKit.get("password").trim());
    }

    /**
     * 配置全局拦截器
     */
    @Override
    public void configInterceptor(Interceptors me) {

    }

    /**
     * 配置处理器
     */
    @Override
    public void configHandler(Handlers me) {

    }

    @Override
    public void afterJFinalStart() {

    }


}
